SOAP Web Service Client তৈরি করার জন্য Apache CXF ফ্রেমওয়ার্ক ব্যবহার করা যেতে পারে। Apache CXF SOAP প্রোটোকলের উপর ভিত্তি করে ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করার জন্য সহজ এবং কার্যকরী পদ্ধতি প্রদান করে। এই টিউটোরিয়ালে, আমরা SOAP Web Service Client তৈরি করার প্রক্রিয়া দেখব।
SOAP Web Service Client তৈরি করার জন্য প্রথমে একটি Maven প্রকল্প তৈরি করতে হবে। এটি ক্লায়েন্ট এবং সার্ভিসের মধ্যে যোগাযোগের জন্য প্রয়োজনীয় সব ডিপেনডেন্সি এবং কনফিগারেশন সংরক্ষণ করবে।
প্রকল্পের কাঠামো কিছুটা এরকম হবে:
soap-webservice-client/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/soapclient/
│ │ │ └── SoapClient.java
│ ├── resources/
├── pom.xml
└── target/
pom.xml
কনফিগারেশনMaven পোম ফাইলে Apache CXF এর SOAP ক্লায়েন্টের জন্য প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে। নিচে একটি pom.xml
ফাইলের উদাহরণ দেওয়া হলো।
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>soap-webservice-client</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Apache CXF Dependency for SOAP Web Services -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.0</version>
</dependency>
<!-- Apache CXF Dependency for JAX-WS (Java API for Web Services) -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.5.0</version>
</dependency>
<!-- Log4j for logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
</dependencies>
</project>
এই পোম কনফিগারেশনে, Apache CXF এর SOAP এবং JAX-WS সম্পর্কিত প্রয়োজনীয় ডিপেনডেন্সি যোগ করা হয়েছে।
এখন SOAP ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করার জন্য কিছু কোড লিখতে হবে। সাধারণত, ক্লায়েন্ট SOAP সার্ভিসের WSDL ফাইলের মাধ্যমে মেথডগুলি কল করে। নিচে একটি সাধারণ SOAP ওয়েব সার্ভিস ক্লায়েন্টের উদাহরণ দেওয়া হলো।
package com.example.soapclient;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class SoapClient {
public static void main(String[] args) {
// WSDL URL এবং Service Endpoint
String serviceUrl = "http://localhost:8080/helloWorldService?wsdl";
// ক্লায়েন্ট ইন্টারফেস তৈরি করা
HelloWorldService service = createService(serviceUrl);
// সার্ভিস মেথড কল করা
String response = service.sayHello("World");
// রেসপন্স আউটপুট
System.out.println("Response from SOAP Web Service: " + response);
}
// SOAP ওয়েব সার্ভিস ক্লায়েন্ট ইন্টারফেস তৈরি করার মেথড
private static HelloWorldService createService(String serviceUrl) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(HelloWorldService.class);
factory.setAddress(serviceUrl);
return (HelloWorldService) factory.create();
}
}
HelloWorldService
একটি ক্লায়েন্ট ইন্টারফেস হবে যা সার্ভিসের ওয়েব মেথডকে রিপ্রেজেন্ট করবে। এটি মূলত WSDL এর উপর ভিত্তি করে তৈরি করা হয়। নিচে একটি উদাহরণ:
package com.example.soapclient;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorldService {
@WebMethod
String sayHello(String name);
}
@WebService
: এটি জানিয়ে দেয় যে, এই ইন্টারফেসটি একটি ওয়েব সার্ভিস।@WebMethod
: এটি সার্ভিসের মেথডকে ওয়েব সার্ভিস অপারেশন হিসেবে চিহ্নিত করে।এখন, যখন আপনি SOAP ওয়েব সার্ভিস ক্লায়েন্ট চালান, এটি sayHello
মেথড কল করবে এবং সার্ভিস থেকে প্রাপ্ত ফলাফল প্রদর্শন করবে। নিচে ক্লায়েন্ট কোডের আউটপুট একটি উদাহরণ:
Response from SOAP Web Service: Hello, World!
Read more